package com.atde._05_behavioral_design_patterns.state.app;


/**
 * @BelongsProject: hsp_java_design_mode
 * @BelongsPackage: com.atde._05_behavioral_design_patterns.state.app
 * @Author: Del
 * @CreateTime: 2025-06-30  11:17
 * @Description: 状态模式 --- 具体的状态 --- 表示不能抽奖的状态
 * @Version: 1.0
 */
public class NoRaffleState extends  State{

    // 初始化传入活动引用，扣除积分后改变其状态
    RaffleActivity activity;

    public NoRaffleState(RaffleActivity activity) {
        this.activity = activity;
    }

    // 当前状态可以扣除积分，扣除后，状态进入可以抽奖状态
    @Override
    void deductMoney() {
        System.out.println("扣除50积分成功，您可以抽奖了");
        activity.setState(activity.getCanRaffleState());
    }

    // 当前状态不可以抽奖，输出提示信息
    @Override
    boolean raffle() {
        System.out.println("扣了积分才能抽象....");
        return false;
    }

    // 当前状态不能发放奖品，输出提示信息
    @Override
    void dispensePrize() {
        System.out.println("不能发放奖品");
    }
}
